# 定义接口测试用例
# 使用unittest
# 1.导包
import json

import requests
import unittest

from app import BASE_DIR
from parameterized import parameterized
from aip.login import LoginAPI
# 构造测试数据
def build_data():
    # 指定json文件路径
    json_file = BASE_DIR + "/data/login.json"
    # 定义一个空字典
    test_data = []
    # 按照二进制形式读取文件
    with open(json_file,encoding="utf8") as f:
        json_data = json.load(f)
        # 循环读取并获取对应的字段
        for case_data in json_data:
            login_data = case_data.get("login_data")
            status_code = case_data.get("status_code")
            success = case_data.get("success")
            code = case_data.get("code")
            message = case_data.get("message")
            test_data.append((login_data, status_code, success, code, message))
    return test_data
    # 将其添加到空字典中
    # 返回数据

class TestLogin02(unittest.TestCase):
    def setUp(self):
        self.login_api = LoginAPI()

    # 创建方法
    # 登录
    @parameterized.expand(build_data())
    def test01_login(self,login_data, status_code, success, code, message):
        response = self.login_api.login(login_data)
        print(response.json())
    # 断言
        self.assertEqual(status_code, response.status_code)
        self.assertEqual(success, response.json().get("success"))
        self.assertEqual(code, response.json().get("code"))
        self.assertIn(message,response.json().get("message"))
